home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
serien
/
purity
/
nr.11
/
kickpascal-programme
/
iff
/
showiff.p
< prev
next >
Wrap
Text File
|
1995-04-21
|
3KB
|
100 lines
{**********************************************************
ShowIFF:
Nachdem auf der Purity 7 ein Beispielprogramm
für die Benutzung der iff.library für den PCQ
war, gibt es jetzt und hier das gleiche für
KickPascal.
Das Programm benötigt die iff.library im aktuellen
libs Verzeichnis und die iff Unit. Die iffunit
liegt als sourcecode bei und wurde von FRANK BEER
(GÜNTHERSOFT) programmiert. DANKE Frank!
cli.i wurde programmiert, um den Umgang mit Para-
metern zu erleichtern.
Dies ist die Version für die neuen Kickpascal-includes.
damit das Programm auch mit den alten includefiles läuft
bitte den Hinweis in Zeile 45 lesen.
Viel Spaß wünscht
Michel of Rogersoft.
**********************************************************}
PROGRAM ShowIFF;
USES intuition,graphics,iff;
FROM windows USES arpfilerequester;
{$INCL 'cli.i'} { für das Parameterauslesen }
VAR MyScreen : p_Screen;STATIC;
ifffile : PTR;STATIC;
count,i : LONG;STATIC;
colortable : ARRAY [0..127] OF WORD;STATIC;
bmhd : p_bitmapheader;
Dateiname : STRING;STATIC;
PROCEDURE Ende;
var ok:boolean;
BEGIN
IF gfxbase <> NIL THEN closelibrary(gfxbase);
IF iffbase <> NIL THEN closelibrary(iffbase);
IF MyScreen <> NIL THEN ok:=CloseScreen(MyScreen);
{** für die alten Kickpascalincludes muß obige Zeile heißen:
IF MyScreen <> NIL THEN CloseScreen(MyScreen);**}
IF ifffile <> NIL THEN closeiff(ifffile);
END;
PROCEDURE bild_laden(bildname:STRING);
BEGIN
AddexitServer(Ende);
ifffile:=OpenIff(Dateiname);
IF ifffile = NIL THEN ERROR("Fehler beim öffnen des iff-Files");
bmhd:=GetBmhd(ifffile);
If bmhd = NIL THEN ERROR("Kann Bitmapheader nicht finden");
MyScreen:=Open_Screen(0,0,bmhd^.w,bmhd^.h,bmhd^.nPlanes,0,0,
GetviewModes(ifffile),'');
IF myscreen = NIL THEN ERROR("Kann Screen nicht öffnen !");
count:=GetColorTab(ifffile,^colortable);
IF (count>32) THEN count:=32;
LoadRGB4(^MyScreen^.ViewPort,^colortable,count);
IF NOT DecodePic(ifffile,^MyScreen^.BitMap) THEN
Error("Kann Bilddatei nicht Decodieren !");
REPEAT
UNTIL((mem[$bfe001] and 64 ) = 0);
ende;
END; { OF bild_laden }
PROCEDURE workbenchstart;
BEGIN
Reset(input,"CON:0/0/500/100/ShowIFF V1.00 Coded on 01.03.93 for PURITY");
output:=input;
WRITELN(CHR($9b),"31;42m","ShowIFF",CHR($9b),"31;40m © by Günthersoft - PD");
WRITELN(' Überarbeitet 6.12.92/01.03.93 by Rogersoft');
WRITELN;
Dateiname:=FileReq(NIL,'IFF Datei wählen');
IF dateiname<>'' THEN bild_laden(dateiname);
Close(input);
END;
PROCEDURE clistart;
BEGIN
WRITELN(CHR($9b),"31;42m","ShowIFF",CHR($9b),"31;40m © by Günthersoft - PD");
WRITELN(' Überarbeitet 6.12.92/01.03.93 by Rogersoft');
WRITELN;
IF (argnum<1) THEN Writeln ('Kein Parameter übergeben')
ELSE
BEGIN
dateiname:=Getarg(1);
bild_laden(dateiname);
END;
END;
BEGIN { Hauptprogramm }
IF FROMWB THEN workbenchstart ELSE clistart;
END.